package com.hhkj.study.admin.order.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hhkj.study.admin.order.model.podo.OrderItemPo;
import com.ruoyi.common.core.domain.BizBaseEntity;
import com.ruoyi.common.valid.VAdd;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
*
* @author SERVER
* @since 2024-09-18
*/
@TableName(value = "x_order")
@EqualsAndHashCode(callSuper = true)
@Data
public class Order extends BizBaseEntity {

	/**
	 * 订单号
	*/
	private String orderCode;
	/**
	 * 名称
	*/
	private String name;
	/**
	 * 是否企业，1企业0个人
	*/
	private Integer enterpriseFlag;
	/**
	 * 付款人ID
	*/
	private Long payUserId;
	/**
	 * 付款人姓名
	*/
	private String payUserName;
	/**
	 * 付款人手机号
	*/
	private String payUserMobile;
	/**
	 * 销售姓名
	*/
	private String saleName;
	/**
	 * 销售ID
	*/
	private Long saleId;
	/**
	 * 原始价格
	*/
	private Integer originPrice;
	/**
	 * 实际价格
	*/
	private Integer realPrice;
	/**
	 * 支付金额
	*/
	private Integer payPrice;
	/**
	 * 支付方式（微信wechat、支付宝alipay、扫二维码qrcode、对公转账bank，其他other）
	*/
	private String payType;
	/**
	 * 支付时间
	*/
	@NotNull(message = "支付时间不能为空", groups = VAdd.class)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date payTime;
	/**
	 * 支付凭证图片URL
	*/
	private String payPicUrl;
	/**
	 * 支付备注
	*/
	private String payRemark;
	/**
	 * 支付状态（1已支付、0未支付）
	*/
	private Integer payStatusFlag;
	/**
	 * 已开票、未开票(1-开票，0未申请，2已申请未开票)
	*/
	private Integer invoiceStatus;
	/**
	 * 订单状态（未支付unpay、支付成功paid、部分退款refund_part、全额退款refund_all、已关闭closed、已取消cancel）
	*/
	private String orderStatus;
	/**
	 * 订单来源ID
	*/
	private Long orderFromId;
	/**
	 * 订单来源名称
	*/
	private String orderFromName;
	/**
	 * 订单备注
	*/
	private String remark;

	@TableField(exist = false)
	private List<OrderItemPo> itemList;

}